1. Field of the Invention
The present invention relates to systems and methods for providing streaming media to users, and in particular, to a system and method for directed advertising in said streaming media.
2. Description of the Related Art
The dissemination and playback of media programs has undergone substantial changes in the past decade. Previously, media programs (which may include audio, video, or both) were disseminated either by analog broadcast (conventional, satellite, or cable) or by dissemination of films to movie theaters.
These traditional dissemination and playback means remain in use after the advent of digital technology. However, digital technologies have had a profound effect on the dissemination and playback of media programs.
First, digital technology permitted the use of digital video recorders (DVRs). DVRs, while similar in function to standard analog video cassette recorders (VCRs), provide a number of additional useful functions including live pause, the ability to record one program while playing back another, and the integration of the electronic program guides with DVR functionality (so that the recordation of media programs could be scheduled far in advance).
Second, digital technology also permitted the dissemination and playback of media programs via the Internet, and with improved signal processing and more and more households with high-speed Internet access (e.g. DSL, fiber, and/or satellite). These methods of dissemination and playback has become competitive with traditional means. Dissemination of media programs via the Internet may occur either by simple downloading, progressive downloading or streaming.
For progressive download, a media file having the media program is downloaded via the Internet using dial-up, DSL, ADSL, cable, T1, or other high speed connection. Such downloading is typically performed by a web server via the Internet.
Simple downloading downloads the bytes of the media file in any convenient order, while progressive download downloads bytes at the beginning of a file and continues downloading the file sequentially and consecutively until the last byte. At any particular time during progressive downloading, portions of the file may not be immediately available for playback. In some situations, the entire file must be downloaded first before a media player can start playback. In other progressive download situations, media players are able to start playback once enough of the beginning of the file has downloaded, however, the media player must download enough information to support some form of playback before playback can occur. Playback of progressively downloaded media files is often delayed by slow Internet connections and is also often choppy and/or contains a high likelihood of stopping after only a few seconds. Once a progressively downloaded media program has been completely downloaded, it may be stored on the end-user computer for later use.
One of the disadvantages of a progressive downloading is that the entity transmitting the data (the web server) simply pushes the data to the client as fast as possible. It may appear to be “streaming” the video because the progressive download capability of many media players allows playback as soon as an adequate amount of data has been downloaded. However, the user cannot fast-forward to the end of the file until the entire file has been delivered by the web server. Another disadvantage with progressive downloading is that the web server does not make allowances for the data rate of the video file. Hence if the network bandwidth is lower than the data rate required by the video file, the user will have to wait a period of time before playback can begin. If playback speed exceeds the data transfer speed, playback may be paused for a period of time while additional data is downloaded, interrupting the viewing experience. However, the video playback quality may be higher when the playback occurs because of the potentially higher data rate. For example, if a 100 kbps video file can be delivered over a 56 kbps modem, the video will be presented at the 100 kbps rate, but there may be periods when playback will be paused while additional video data is downloaded. The video data is typically downloaded and stored as a temporary file in its entirety.
Web servers typically use HTTP (hypertext transport protocol) on top of TCP (transfer control protocol) to transfer files over the network. TCP, which controls the transport of data packets over the network, is optimized for guaranteed delivery of data, not speed. Therefore, if a browser senses that data is missing, a resend request will be issued and the data will be resent. In networks with high delivery errors, resend requests may consume a large amount of bandwidth. Since TCP is not designed for efficient delivery of adequate data or bandwidth control (but rather guaranteed delivery of all data), it is not preferred for the delivery of video data in all applications.
Streaming delivers media content continuously to a media player and media playback occurs simultaneously. The end-user is capable of playing the media immediately upon delivery by the content provider. Traditional streaming techniques originate from a single provider delivering a stream of data to a set of end-users. High bandwidths and central processing unit (CPU) power are required to deliver a single stream to a large audience, and the required bandwidth of the provider increases as the number of end-users increases.
Unlike progressive downloading, streaming media can be delivered on-demand or live. Wherein progressive download requires downloading the entire file or downloading enough of the entire file to start playback at the beginning, streaming enables immediate playback at any point within the file. End-users may skip through the media file to start playback or change playback to any point in the media file. Hence, the end-user does not need to wait for the file to progressively download. Typically, streaming media is delivered from a few dedicated servers having high bandwidth capabilities.
A streaming media server is a specialized device that accepts requests for video files, and with information about the format, bandwidth and structure of those files, delivers just the amount of data necessary to play the video, at the rate needed to play it. Streaming media servers may also account for the transmission bandwidth and capabilities of the media player. Unlike the web server, the streaming media server communicates with the user computer using control messages and data messages to adjust to changing network conditions as the video is played. These control messages can include commands for trick play functions such as fast forward, fast reverse, pausing, or seeking to a particular part of the file. Since a streaming media server transmits video data only as needed and at the rate that is needed, precise control over the number of streams served can be maintained. Unlike the case with progressive downloading, the viewer will not be able to view high data rate videos over a lower data rate transmission medium. However, streaming media servers (1) provide users random access to the video file, (2) allows monitoring of who is viewing what video programs and how long they are watched (3) use transmission bandwidth more efficiently, since only the amount of data required to support the viewing experience is transmitted, and (4) the video file is not stored in the viewer's computer, but discarded by the media player, thus allowing more control over the content.
Streaming media servers may use HTTP and TCP to deliver video streams, but generally use RSTP (real time streaming protocol) and UDP (user datagram protocol). These protocols permit control messages and save bandwidth by reducing overhead. Unlike TCP, when data is dropped during transmission, UDP does not transmit resent requests. Instead, the server continues to send data. Streaming media servers can also deliver live webcasts and can multicast, which allows more than one client to tune into a single stream, thus saving bandwidth.
Typically, progressively downloaded media is transmitted to the user computer at a rate that is faster than playback. The media program player buffers this data, and may indicate how much of the media program has been buffered by providing an indicator, usually as a part of a “progress bar.” A control is often provided that allows the user to go to any point in the program that has already been buffered by selecting the control and moving it to a different location along the progress bar. This allows the user to randomly access any buffered portion of the media program.
Streaming media players do not rely on buffering to provide random access to any point in the media program. Instead, this is accomplished through the use of control messages transmitted from the media player to the streaming media server.
The delivery of media programs can be accomplished under a variety of models. In one model, the user pays for the viewing of the media program (for example, using a pay-per-view service). In another model widely adopted by broadcast television shortly after it's inception, sponsors pay for the presentation of the media program in exchange for the right to present advertisements during or adjacent to the presentation of the program.
The advent of DVRs has had a profound effect upon the advertising model described above. DVRs permit the user to record media programs (in advance or during their broadcast), and permit the user to easily bypass advertisements presented during the media program by use of trick-play functions such as fast forward and reverse.
However, DVRs are not capable of these operations with media programs provided as streaming media. In such cases, the user must view the advertisements. The fact that users cannot skip advertisements within streamed media using a DVR-like device is both a strength and a weakness of this media program delivery paradigm. It is a strength, because advertisers can be assured that the viewers are actually watching the advertisements placed within the media program and not skipping them. However, it also represents a barrier to the widespread viewing of media programs via streaming media because users prefer to skip advertisements that are not of interest.
It is also known that advertisements can be generally directed to users based on information gleaned from the user's clickstream through a website or from demographic information provided by the user. However, the information available from monitoring clickstreams often does not provide information that is important to direct advertising to the proper users. For example, household income cannot be determined from clickstream information. Further, while household income and other demographic information may be obtained from users, in prior art systems, the user is given little incentive to provide such information, and even less incentive to periodically update information that has become out of date, or to provide more detailed information.
What is needed is a method and apparatus that provides a suitable incentive for users to provide information that will permit advertisements to be directed to users who will be interested in purchasing the goods and services described in the advertisements.